# -*- coding: utf-8 -*-
"""
Created on Wed Feb 20 13:05:31 2019

@author: Administrator
"""

class Person(object):
    #__init__()与__call__()两个函数只要创建了类person就一定会执行的
    def __init__(self, name, gender):
        self.name = name
        self.gender = gender

    def __call__(self, friend,uncle): #若想调用时不传参数就能使用，可以在定义时直接先赋值如uncle='b'
        print( 'My name is %s...' % self.name)
        print( 'My friend is %s...' % friend)
        print( 'My uncle is %s...' % uncle)

#使用方法：
'''
第一步构造对象实例,
__init__(self, name, gender)里有两个参数，因此
Bob是传给name，male是传给gender，
配置时是一定要传给他们的，多了或少了都会出错，
会报的错：
1、TypeError: __init__() missing 1 required positional argument: 'gender' 少了的时候
2、TypeError: __init__() takes 3 positional arguments but 4 were given    多了的时候
'''
p = Person('Bob', 'male') #第一步配置__init__，
'''
传参数给__call__(self, friend,uncle)，
同样两个参数，不能多不能少。
'''
p('Tim','a')